りおんクロニクル


C# × SQLite|よくあるエラーと原因・対処法まとめ【2026年版】

Home【2026年版】C# / .NET入門と実践ガイド|基礎・業務アプリ開発・SQLite連携まで体系的に解説

C#でSQLiteを使うと、特有のエラーにハマりやすいです。 特に Microsoft.Data.Sqlite を使う場合、SQL構文・パス・ロック・型などでつまずく人が多い。 この記事では、現場でよく出るエラーを原因 → 解決策の順でまとめています。

この記事でわかること
・near syntax error の原因
・database is locked の対処法
・no such table の原因
・型エラー(GetString/Int32)
・パス・権限エラー
・実務でのベストプラクティス

1. 「SQLite Error 1: near 'xxx': syntax error」

原因

例(スペース抜け)

"SELECT * FROM Users" + "WHERE Age > 20"
→ 実際には `SELECT * FROM UsersWHERE Age > 20` になってエラー。

対処法

2. 「SQLite Error 5: database is locked」

原因

対処法

正しい例

using var con = new SqliteConnection(cs);
con.Open();

using var cmd = new SqliteCommand(sql, con);
using var reader = cmd.ExecuteReader();

3. 「SQLite Error 1: no such table: Users」

原因

対処法

例:絶対パス

var cs = "Data Source=C:\\data\\sample.db";

4. 「GetString(“Name”) が使えない」

原因

Microsoft.Data.Sqlite の SqliteDataReader は GetString("列名") に対応していないため。

対処法(列番号で読む)

reader.GetString(1);

対処法(列名で読む)

var name = reader["Name"].ToString();

5. 「値がNULLで例外が出る」

原因

GetInt32 / GetString は NULL を許容しない。

対処法

var age = reader.IsDBNull(2) ? (int?)null : reader.GetInt32(2);

6. 「SQLite Error 14: unable to open database file」

原因

対処法

7. 「SQLite Error 19: constraint failed」

原因

対処法

8. 「SQLパラメータが反映されない」

原因

正しい例

cmd.Parameters.AddWithValue("@name", name);

9. 業務アプリでのベストプラクティス

まとめ:SQLiteのエラーは原因が決まっている

C# × SQLite は軽量で扱いやすいですが、 エラーの原因はほぼパターン化されています。 この記事を参考にすれば、ほとんどの問題はすぐ解決できます。

前のページ  次のページ